using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BerkoRules.Mappers;
using Microsoft.VisualBasic.CompilerServices;

namespace Berko
{
    public partial class frmRptXPatente_new : Form
    {
        private System.Data.DataTable _dtUnidades;
        private string _patente;

        public string Patente
        {
            set { cboUnidades.SelectedText  = value; }

        }

        public frmRptXPatente_new()
        {
            InitializeComponent();
        }

        private void cboPatente_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (((int)e.KeyChar) == 13)
            {
                this.cmdBuscar2.PerformClick();
            }
        }

        private void cboUnidades_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((int)(e.KeyChar) == 13)
            {
                this.cmdBuscar2.PerformClick();
            }
        }

        private void cdTodas_Click(object sender, EventArgs e)
        {
            this.Traer_Unidades();
        }
        
        private void Traer_Unidades()
        {
            try
            {
                this._dtUnidades = UnidadesMapper.Instance().Traer_Todas();
                this.cboUnidades.DataSource = this._dtUnidades;
                this.cboUnidades.DisplayMember = "uni_Patente";
                this.cboUnidades.ValueMember = "uni_ID";
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                MessageBox.Show("No se pudieron traer las unidades", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                ProjectData.ClearProjectError();
            }
        }
        
        private void chkTodos_CheckedChanged(object sender, EventArgs e)
        {
            int num2 = this.chkTrabajos.Items.Count - 1;
            for (int i = 0; i <= num2; i++)
            {
                this.chkTrabajos.SetItemChecked(i, this.chkTodos.Checked);
            }
        }
        
        private void frmRptXPatente_Load(object sender, EventArgs e)
        {
            this.Traer_Unidades();
            int num2 = this.chkTrabajos.Items.Count - 1;
            for (int i = 0; i <= num2; i++)
            {
                this.chkTrabajos.SetItemChecked(i, true);
            }
        }

        private void cmdBuscar2_Click(object sender, EventArgs e)
        {
            DataTable table = new DataTable();
            bool flag = false;
            table.Columns.Add("uni_ID");
            table.Columns.Add("uni_Nombre");
            table.Columns.Add("uni_Patente");
            if (this.cboUnidades.Text.Trim() != string.Empty)
            {
                int num2 = this._dtUnidades.Rows.Count - 1;
                for (int i = 0; i <= num2; i++)
                {
                    if (this._dtUnidades.Rows[i][2].ToString().IndexOf(this.cboUnidades.Text, StringComparison.OrdinalIgnoreCase) != -1)
                    {
                        flag = true;
                        DataRow row = table.NewRow();
                        row[0] = this._dtUnidades.Rows[i][0];
                        row[1] = this._dtUnidades.Rows[i][1];
                        row[2] = this._dtUnidades.Rows[i][2];
                        table.Rows.Add(row);
                    }
                }
                if (flag)
                {
                    this.cmdFecha.Enabled = true;
                    this.cmdTrabajo.Enabled = true;
                    this.cmdNuevoTra.Enabled = true;
                    this.cmdUnidad.Enabled = false;
                }
                else
                {
                    MessageBox.Show("La patente no existe", "Patente inexistente", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.cmdFecha.Enabled = false;
                    this.cmdTrabajo.Enabled = false;
                    this.cmdNuevoTra.Enabled = false;
                    this.cmdUnidad.Enabled = true;
                }
                this.cboUnidades.DataSource = table;
                this.cboUnidades.DisplayMember = "uni_Patente";
                this.cboUnidades.ValueMember = "uni_ID";
            }
        }
        
        private void cmdFecha_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            this.cmdFecha.Enabled = false;
            this.cmdFecha.Refresh();
            //rpt_PorPatente_Fecha fecha = new rpt_PorPatente_Fecha();
            DataSet dataSet = new DataSet();
            DataTable table = new DataTable("dt_Cliente");
            DataTable table2 = new DataTable("dt_PorPatente");
            try
            {
                table = UnidadesMapper.Instance().Traer_Uno_DataTable(Conversions.ToInteger(this.cboUnidades.SelectedValue)).Copy();
                table2 = TrabajosMapper.Instance().RPT_Por_Patente_Fecha(Conversions.ToInteger(this.cboUnidades.SelectedValue), this.chkTrabajos.GetItemChecked(2), this.chkTrabajos.GetItemChecked(0), this.chkTrabajos.GetItemChecked(1), this.chkTrabajos.GetItemChecked(5), this.chkTrabajos.GetItemChecked(4), this.chkTrabajos.GetItemChecked(3)).Copy();
                table.TableName = "dt_Cliente";
                table2.TableName = "dt_PorPatente";
                dataSet.Tables.Add(table);
                dataSet.Tables.Add(table2);
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                this.Cursor = Cursors.Default;
                this.cmdFecha.Enabled = true;
                ProjectData.ClearProjectError();
                return;
                ProjectData.ClearProjectError();
            }
            grdTrabajos.DataSource = table2;
            this.Cursor = Cursors.Default;
            this.cmdFecha.Enabled = true;
        }

        private void cmdNuevoTra_Click(object sender, EventArgs e)
        {
            frmTrabajos trabajos = new frmTrabajos();
            //TODO: trabajos.Uni_ID = Conversions.ToInteger(this.cboUnidades.SelectedValue);
            trabajos.Show();
        }

        private void cmdTrabajo_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            this.cmdTrabajo.Enabled = false;
            this.cmdTrabajo.Refresh();
            //rpt_PorPatente_Trabajo trabajo = new rpt_PorPatente_Trabajo();
            DataSet dataSet = new DataSet();
            DataTable table = new DataTable("dt_Cliente");
            DataTable table2 = new DataTable("dt_PorPatente");
            try
            {
                table = UnidadesMapper.Instance().Traer_Uno_DataTable(Conversions.ToInteger(this.cboUnidades.SelectedValue)).Copy();
                table2 = TrabajosMapper.Instance().RPT_Por_Patente_Trabajo(Conversions.ToInteger(this.cboUnidades.SelectedValue), this.chkTrabajos.GetItemChecked(2), this.chkTrabajos.GetItemChecked(0), this.chkTrabajos.GetItemChecked(1), this.chkTrabajos.GetItemChecked(5), this.chkTrabajos.GetItemChecked(4), this.chkTrabajos.GetItemChecked(3)).Copy();
                table.TableName = "dt_Cliente";
                table2.TableName = "dt_PorPatente";
                dataSet.Tables.Add(table);
                dataSet.Tables.Add(table2);
            }
            catch (Exception exception1)
            {
                ProjectData.SetProjectError(exception1);
                Exception exception = exception1;
                this.Cursor = Cursors.Default;
                this.cmdTrabajo.Enabled = true;
                ProjectData.ClearProjectError();
                return;
                ProjectData.ClearProjectError();
            }
            grdTrabajos.DataSource = table2;
            //this.rptVisor.ReportSource = trabajo;
            //this.rptVisor.RefreshReport();
            this.Cursor = Cursors.Default;
            this.cmdTrabajo.Enabled = true;
        }

        private void cmdUnidad_Click(object sender, EventArgs e)
        {
            new frmUnidades().Show();
        }

        private void grdTrabajos_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            try
            {
                int idTrabajo;
                idTrabajo = (int) grdTrabajos.Rows[e.RowIndex].Cells[1].Value;
                frmTrabajos formTrabajo = new frmTrabajos();
                formTrabajo.CargarTodos = false;
                formTrabajo.Show();
                formTrabajo.CargarDesdeID(idTrabajo);
            }
            catch (Exception ex)
            {
                throw;
            }
        }

        public void cargarXPatentes()
        {
            this.cmdBuscar2_Click(null,null);
            this.cmdTrabajo_Click(null, null);
        }
    }
}